package store

import (
	"wespy-http-go/app/activity/common/actreward"
)

type ChangeNameRsp struct {
}

type OpenDoorRsp struct {
}

type SendFlyerRsp struct {
}

type GetTableRsp struct {
	MealingNum       int          `json:"mealing_num"`       // 正在用餐的顾客数量
	PendingNum       int          `json:"pending_num"`       // 排队等待的顾客数量
	DeskNum          int          `json:"desk_num"`          // 总桌子数量
	TipNum           int          `json:"tip_num"`           // 累计小费数量
	ReputationScore  int          `json:"reputation_score"`  // 累计口碑分
	RefreshTimestamp string       `json:"refresh_timestamp"` // 刷新时间戳 (格式: 2020-02-01 12:00)
	List             []*TableInfo `json:"list"`              // 桌子信息列表
}

type TableInfo struct {
	Timestamp string `json:"timestamp"` // 用餐结束时间
	NpcId     int    `json:"npc_id"`    // NPC ID
}

type CheckoutTablesRsp struct {
	CheckoutNum int `json:"checkout_num"` // 结算的顾客数量
}

type CheckoutTipRsp struct {
	ReputationScore int `json:"reputation_score"` // 领取的口碑分
	TipNum          int `json:"tip_num"`          // 领取的小费
}

type SignInRsp struct {
	Rewards []*actreward.RewardInfo `json:"rewards"` // 签到奖励
}

type GetSignDetailsRsp struct {
	List []*SignDetail `json:"list"` // 签到详情列表
}

type GetSignPopupRsp struct {
	Rewards []*actreward.RewardInfo `json:"rewards"` // 签到弹窗奖励
}

type SignDetail struct {
	Day           string `json:"day"`            // 日期
	NormalState   int    `json:"normal_state"`   // 普通签到状态
	AdvancedState int    `json:"advanced_state"` // 高级签到状态
}

type GetShopDetailsRsp struct {
	Name               string `json:"name"`                  // 店铺名称
	OpenDoor           bool   `json:"open_door"`             // 是否营业中
	Advanced           bool   `json:"advanced"`              // 是否解锁高级功能
	NextFlyerTime      string `json:"next_flyer_time"`       // 下次传单时间
	IsGet              bool   `json:"is_get"`                // 是否能领取小费
	Rank               int    `json:"rank"`                  // 当前排行榜排名
	CurrentRankEndTime string `json:"current_rank_end_time"` // 当前排行榜区间结束时间（格式化后的字符串）
}

type TableInfoDTO struct {
	Timestamp int `json:"timestamp"` // 用餐结束时间
	Member    int `json:"member"`    // 成员ID
}

type CheckoutTask struct {
	Uid       int `json:"uid"`       // 用户ID
	Timestamp int `json:"timestamp"` // 时间戳
}

type FreeFlyerTask struct {
	Uid       int `json:"uid"`       // 用户ID
	Timestamp int `json:"timestamp"` // 时间戳
}

// RankUserInfo 排行榜用户信息
type RankUserInfo struct {
	Uid    int    `json:"uid"`    // 用户ID
	Score  int    `json:"score"`  // 积分
	Rank   int    `json:"rank"`   // 排名
	Avatar string `json:"avatar"` // 头像
	Name   string `json:"name"`   // 昵称
}

// GetRankListRsp 获取排行榜列表响应
type GetRankListRsp struct {
	MyRank      int             `json:"my_rank"`       // 我的排名
	MyScore     int             `json:"my_score"`      // 我的积分
	RankList    []*RankUserInfo `json:"rank_list"`     // 排行榜列表
	RankPeriod  string          `json:"rank_period"`   // 排行榜时间段描述，如"14:00-15:00"
	RankEndTime string          `json:"rank_end_time"` // 当前排行榜区间结束时间（格式化后的字符串）
}

type TestHourlyRankRsp struct {
	RedisKey      string `json:"redis_key"`      // 生成的Redis Key
	TimeFormat    string `json:"time_format"`    // 时间格式
	Score         int    `json:"score"`          // 增加的积分
	TotalScore    int    `json:"total_score"`    // 总积分
	CurrentHour   int    `json:"current_hour"`   // 当前小时
	RankHour      int    `json:"rank_hour"`      // 排行榜时间段
	IsValidTime   bool   `json:"is_valid_time"`  // 是否在有效时间内
	HookTriggered bool   `json:"hook_triggered"` // Hook是否被触发
}

type TestHourlyCheckoutRsp struct {
	ProcessedHour int    `json:"processed_hour"` // 处理的小时
	Period        string `json:"period"`         // 时间段，如"14:00-15:00"
	Top3Count     int    `json:"top3_count"`     // 前三名数量
	Winners       []int  `json:"winners"`        // 前三名UID列表
	Message       string `json:"message"`        // 处理结果消息
}
